The Internet is a vast collection of computing resources, interconnected as a network, from sites around the world. It is used every day by millions of people. The World Wide Web (referred to herein as the “Web”) is that portion of the Internet that uses the HyperText Transfer Protocol (HTTP) as a protocol for exchanging messages.
A user working in a Web environment will have software running on his or her computer to allow him or her to create and send requests for information, and to see the results. These functions are typically combined in a software package that is referred to as a “Web browser”, or “browser”. The HTTP communications protocol uses a request/response paradigm, where the electronic messages sent between communicating computers can be categorized as either requests for information or responses to those requests. After the user has created a request using the browser, the request message is sent out into the Internet for processing. The target of the request message is one of the interconnected computers in the Internet network. That computer will receive the message, attempt to find the data satisfying the user's request, format that data for display with the user's browser, and return the formatted response to the browser software running on the user's computer.
Content on the Internet typically is stored on server computers in individual files in the form of HTML pages, containing displayable information. HTML (HyperText Markup Language) is a Web content formatting language specifically designed for a distributed network such as the Internet. Web browser software is designed to issue page requests in the form of URLs (Universal Resource Locators). A URL essentially is an address of a file that is accessible through the Internet. The URL includes the name of the file that is being requested and the IP (Internet Protocol) address of the server on which it is to be found. The file is identified as a HTML type file by its extension, usually .htm or .html.
Web services is a term applied to application logic or application software modules that can be exposed to and shared with others over the Internet via a standardized interface mechanism. The Web services concept can be considered an extension of the exchange of files containing displayable information, i.e., Web pages, paradigm to exchange of other types of information between nodes of a network, i.e., machine-to-machine, or business-to-business interfaces.
Currently, the Web services landscape is an evolving collection of inter-related standards and implementations. Presently, there is no system for aggregating all of the necessary information to fully describe, deploy and manage the life cycle of a Web service. Web Service Description Language (WSDL) is an XML-based language that is central to the future development of the Web services paradigm. WSDL is used to describe the services a business offers and to provide a way for others to access those services via the Web (or any other network).
The UDDI initiative is an XML-based registry standard by which businesses list themselves and the Web services they offer on the Internet. WSDL is one approach to describing such Web services. A key goal of the UDDI initiative is to enable companies to find each other and each other's Web services on the Internet and to make their computer systems inter-operable with each other in order to facilitate electronic commerce. The UDDI initiative allows businesses to list information about themselves, e.g., name, location, and/or the Web services they offer.
In today's Internet environment, there are many ways to discover information about a Web service in addition to the UDDI scheme. For instance, users seeking Web services can search not only the UDDI public registry but also Web pages such as Xmethods (www.xmethods.com) that contain information about where to find Web services on the Web. Further, users may simply know the URL of the service information.
Even further, Web service information may be in many formats. For instance, one such format is WSDL (Web Service Definition Language). However, the UDDI registry does not necessarily utilize WSDL for information typically contained inside the WSDL implementation documents.
Other scenarios for representing a Web service include: (1) an environment specific deployment descriptor such as HTTP://www.foo.com/mydeploymentdescriptor.xml, (2) a UDDI service key such as D2033110-3AAF-11D5-80DC-002035229C64, (3) a WSIL (Web Service Inspection Language) document, such as HTTP://www.foo.com/service.wsil, (4) an HTML (Hypertext Markup Language) document such as HTTP://www.foo.com/services.html containing WSIL meta tags, (5) a filename of a serialized object representing a deployment descriptor, such as deploymentDesc.ser, or (6) a deployment object in the implementation language.
Moreover, the way in which a Web service is to be deployed can depend on the perspective of the entity requesting the Web service. For example, the way in which a Web service is deployed may depend on whether the accessing entity is deploying a proxy to the Web service or deploying a Web service that it will directly host.
Given so many ways of representing deployment information for a Web service, it is extremely difficult for developers building a Web services framework to keep deployment of services simple.
Accordingly, it is an object of the present invention to provide a framework that simplifies discovery and deployment of Web services.
It is another object of the present invention to provide a method and apparatus for deploying Web services into a run-time environment.